NY Uber stats¶

1. Wich month have max Uber pickups in new york City?¶

2. lets find out hourly rush in NYC on all days¶

3. Wich Base_number has most number of Active Vehicles?¶

4. What locations of NYC we are getting rush?¶

5. Examine rush on hour adn weekday (permorm pair wis analysis)¶

In [3]:
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
In [ ]:
 
In [9]:
import os
In [10]:
os.listdir(r"C:\Users\lucas\general\cursos\09-python\01_data_analyst_python\01-project_NY_uber_stats\Datasets")
Out[10]:
['other-American_B01362.csv',
 'other-Carmel_B00256.csv',
 'other-Dial7_B00887.csv',
 'other-Diplo_B01196.csv',
 'other-Federal_02216.csv',
 'other-FHV-services_jan-aug-2015.csv',
 'other-Firstclass_B01536.csv',
 'other-Highclass_B01717.csv',
 'other-Lyft_B02510.csv',
 'other-Prestige_B01338.csv',
 'other-Skyline_B00111.csv',
 'Uber-Jan-Feb-FOIL.csv',
 'uber-raw-data-apr14.csv',
 'uber-raw-data-aug14.csv',
 'uber-raw-data-janjune-15.csv',
 'uber-raw-data-janjune-15_sample.csv',
 'uber-raw-data-jul14.csv',
 'uber-raw-data-jun14.csv',
 'uber-raw-data-may14.csv',
 'uber-raw-data-sep14.csv']

Extract data¶

In [11]:
pd.read_csv(r"C:\Users\lucas\general\cursos\09-python\01_data_analyst_python\01-project_NY_uber_stats\Datasets/uber-raw-data-janjune-15_sample.csv")
Out[11]:
Dispatching_base_num Pickup_date Affiliated_base_num locationID
0 B02617 2015-05-02 21:43:00 B02764 237
1 B02682 2015-01-20 19:52:59 B02682 231
2 B02617 2015-03-19 20:26:00 B02617 161
3 B02764 2015-04-10 17:38:00 B02764 107
4 B02764 2015-03-23 07:03:00 B00111 140
... ... ... ... ...
99995 B02764 2015-04-13 16:12:00 B02764 234
99996 B02764 2015-03-06 21:32:00 B02764 24
99997 B02598 2015-03-19 19:56:00 B02598 17
99998 B02682 2015-05-02 16:02:00 B02682 68
99999 B02764 2015-06-24 16:04:00 B02764 125

100000 rows × 4 columns

In [12]:
uber_15 = pd.read_csv(r"C:\Users\lucas\general\cursos\09-python\01_data_analyst_python\01-project_NY_uber_stats\Datasets/uber-raw-data-janjune-15_sample.csv")
In [13]:
uber_15.shape
Out[13]:
(100000, 4)

cleaning adn transform data¶

In [14]:
uber_15.duplicated()
Out[14]:
0        False
1        False
2        False
3        False
4        False
         ...  
99995    False
99996    False
99997    False
99998    False
99999    False
Length: 100000, dtype: bool
In [15]:
uber_15.duplicated().sum()
Out[15]:
54
In [16]:
uber_15.drop_duplicates(inplace=True)
In [17]:
uber_15.duplicated().sum()
Out[17]:
0
In [18]:
uber_15.shape
Out[18]:
(99946, 4)
In [19]:
uber_15.dtypes
Out[19]:
Dispatching_base_num    object
Pickup_date             object
Affiliated_base_num     object
locationID               int64
dtype: object
In [20]:
uber_15.isnull().sum()
Out[20]:
Dispatching_base_num       0
Pickup_date                0
Affiliated_base_num     1116
locationID                 0
dtype: int64
In [23]:
type(uber_15['Pickup_date'][0])
Out[23]:
str
In [25]:
pd.to_datetime(uber_15['Pickup_date'])
Out[25]:
0       2015-05-02 21:43:00
1       2015-01-20 19:52:59
2       2015-03-19 20:26:00
3       2015-04-10 17:38:00
4       2015-03-23 07:03:00
                ...        
99995   2015-04-13 16:12:00
99996   2015-03-06 21:32:00
99997   2015-03-19 19:56:00
99998   2015-05-02 16:02:00
99999   2015-06-24 16:04:00
Name: Pickup_date, Length: 99946, dtype: datetime64[ns]
In [27]:
uber_15['Pickup_date'] = pd.to_datetime(uber_15['Pickup_date'])
In [28]:
uber_15['Pickup_date'].dtype
Out[28]:
dtype('<M8[ns]')
In [29]:
uber_15['Pickup_date'][0]
Out[29]:
Timestamp('2015-05-02 21:43:00')
In [30]:
type(uber_15['Pickup_date'][0])
Out[30]:
pandas._libs.tslibs.timestamps.Timestamp
In [31]:
uber_15.dtypes
Out[31]:
Dispatching_base_num            object
Pickup_date             datetime64[ns]
Affiliated_base_num             object
locationID                       int64
dtype: object
In [35]:
uber_15['month'] = uber_15['Pickup_date'].dt.month_name()

1. Wich month have max Uber pickups in new york City?¶

In [38]:
uber_15['month'].value_counts().plot(kind='bar')
Out[38]:
<Axes: >
In [39]:
uber_15['weekday'] = uber_15['Pickup_date'].dt.day_name()
uber_15['day'] = uber_15['Pickup_date'].dt.day
uber_15['hour'] = uber_15['Pickup_date'].dt.hour
uber_15['minute'] = uber_15['Pickup_date'].dt.minute
In [40]:
uber_15.head()
Out[40]:
Dispatching_base_num Pickup_date Affiliated_base_num locationID month weekday day hour minute
0 B02617 2015-05-02 21:43:00 B02764 237 May Saturday 2 21 43
1 B02682 2015-01-20 19:52:59 B02682 231 January Tuesday 20 19 52
2 B02617 2015-03-19 20:26:00 B02617 161 March Thursday 19 20 26
3 B02764 2015-04-10 17:38:00 B02764 107 April Friday 10 17 38
4 B02764 2015-03-23 07:03:00 B00111 140 March Monday 23 7 3
In [42]:
pivot = pd.crosstab(index=uber_15['month'], columns=uber_15['weekday'])
In [43]:
pivot
Out[43]:
weekday Friday Monday Saturday Sunday Thursday Tuesday Wednesday
month
April 2365 1833 2508 2052 2823 1880 2521
February 2655 1970 2550 2183 2396 2129 2013
January 2508 1353 2745 1651 2378 1444 1740
June 2793 2848 3037 2485 2767 3187 2503
March 2465 2115 2522 2379 2093 2388 2007
May 3262 1865 3519 2944 2627 2115 2328
In [44]:
pivot.plot(kind='bar', figsize=(8,6))
Out[44]:
<Axes: xlabel='month'>

lets find out hourly rush in NYC on all days¶

In [45]:
summary = uber_15.groupby(['weekday', 'hour'], as_index=False).size()
In [46]:
summary
Out[46]:
weekday hour size
0 Friday 0 581
1 Friday 1 333
2 Friday 2 197
3 Friday 3 138
4 Friday 4 161
... ... ... ...
163 Wednesday 19 1044
164 Wednesday 20 897
165 Wednesday 21 949
166 Wednesday 22 900
167 Wednesday 23 669

168 rows × 3 columns

In [52]:
plt.figure(figsize=(8,6))
sns.pointplot(x='hour', y='size', hue="weekday", data=summary)
Out[52]:
<Axes: xlabel='hour', ylabel='size'>

Wich Base_number has most number of Active Vehicles?¶

In [53]:
uber_15.columns
Out[53]:
Index(['Dispatching_base_num', 'Pickup_date', 'Affiliated_base_num',
       'locationID', 'month', 'weekday', 'day', 'hour', 'minute'],
      dtype='object')
In [55]:
uber_foil = pd.read_csv(r"C:\Users\lucas\general\cursos\09-python\01_data_analyst_python\01-project_NY_uber_stats\Datasets/Uber-Jan-Feb-FOIL.csv")
In [57]:
uber_foil.head(3)
Out[57]:
dispatching_base_number date active_vehicles trips
0 B02512 1/1/2015 190 1132
1 B02765 1/1/2015 225 1765
2 B02764 1/1/2015 3427 29421
In [58]:
!pip install chart_studio
!pip install plotly
Collecting chart_studio
  Downloading chart_studio-1.1.0-py3-none-any.whl (64 kB)
     ---------------------------------------- 64.4/64.4 kB 1.7 MB/s eta 0:00:00
Requirement already satisfied: plotly in c:\users\lucas\anaconda3\lib\site-packages (from chart_studio) (5.9.0)
Requirement already satisfied: requests in c:\users\lucas\anaconda3\lib\site-packages (from chart_studio) (2.28.1)
Requirement already satisfied: six in c:\users\lucas\anaconda3\lib\site-packages (from chart_studio) (1.16.0)
Collecting retrying>=1.3.3
  Downloading retrying-1.3.4-py3-none-any.whl (11 kB)
Requirement already satisfied: tenacity>=6.2.0 in c:\users\lucas\anaconda3\lib\site-packages (from plotly->chart_studio) (8.0.1)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\users\lucas\anaconda3\lib\site-packages (from requests->chart_studio) (1.26.14)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\lucas\anaconda3\lib\site-packages (from requests->chart_studio) (2022.12.7)
Requirement already satisfied: idna<4,>=2.5 in c:\users\lucas\anaconda3\lib\site-packages (from requests->chart_studio) (3.4)
Requirement already satisfied: charset-normalizer<3,>=2 in c:\users\lucas\anaconda3\lib\site-packages (from requests->chart_studio) (2.0.4)
Installing collected packages: retrying, chart_studio
Successfully installed chart_studio-1.1.0 retrying-1.3.4
Requirement already satisfied: plotly in c:\users\lucas\anaconda3\lib\site-packages (5.9.0)
Requirement already satisfied: tenacity>=6.2.0 in c:\users\lucas\anaconda3\lib\site-packages (from plotly) (8.0.1)
In [62]:
import chart_studio.plotly as py
import plotly.graph_objs as go
import plotly.express as px
In [63]:
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
In [66]:
px.box(x='dispatching_base_number', y='active_vehicles', data_frame=uber_foil)

Collect entire data and make it ready for data analysis¶

In [ ]:
##agroup all csvs apr14.csv, aug14.csv, jul14.csv, etc
In [73]:
os.listdir(r"C:\Users\lucas\general\cursos\09-python\01_data_analyst_python\01-project_NY_uber_stats\Datasets")
Out[73]:
['other-American_B01362.csv',
 'other-Carmel_B00256.csv',
 'other-Dial7_B00887.csv',
 'other-Diplo_B01196.csv',
 'other-Federal_02216.csv',
 'other-FHV-services_jan-aug-2015.csv',
 'other-Firstclass_B01536.csv',
 'other-Highclass_B01717.csv',
 'other-Lyft_B02510.csv',
 'other-Prestige_B01338.csv',
 'other-Skyline_B00111.csv',
 'Uber-Jan-Feb-FOIL.csv',
 'uber-raw-data-apr14.csv',
 'uber-raw-data-aug14.csv',
 'uber-raw-data-janjune-15.csv',
 'uber-raw-data-janjune-15_sample.csv',
 'uber-raw-data-jul14.csv',
 'uber-raw-data-jun14.csv',
 'uber-raw-data-may14.csv',
 'uber-raw-data-sep14.csv']
In [83]:
files = os.listdir(r"C:\Users\lucas\general\cursos\09-python\01_data_analyst_python\01-project_NY_uber_stats\Datasets")[-8:]
In [84]:
files.remove('uber-raw-data-janjune-15.csv')
In [85]:
files
Out[85]:
['uber-raw-data-apr14.csv',
 'uber-raw-data-aug14.csv',
 'uber-raw-data-janjune-15_sample.csv',
 'uber-raw-data-jul14.csv',
 'uber-raw-data-jun14.csv',
 'uber-raw-data-may14.csv',
 'uber-raw-data-sep14.csv']
In [86]:
files.remove('uber-raw-data-janjune-15_sample.csv')
In [87]:
files
Out[87]:
['uber-raw-data-apr14.csv',
 'uber-raw-data-aug14.csv',
 'uber-raw-data-jul14.csv',
 'uber-raw-data-jun14.csv',
 'uber-raw-data-may14.csv',
 'uber-raw-data-sep14.csv']
In [ ]:
#concatenate files
In [89]:
finalDataframe = pd.DataFrame()

path = r'C:\Users\lucas\general\cursos\09-python\01_data_analyst_python\01-project_NY_uber_stats\Datasets'

for file in files :
    current_df = pd.read_csv(path+'/'+file)
    final = pd.concat([current_df, finalDataframe])
In [91]:
final.shape
Out[91]:
(1028136, 4)
In [92]:
final.duplicated().sum()
Out[92]:
24037
In [93]:
final.drop_duplicates(inplace=True)
In [94]:
final.shape
Out[94]:
(1004099, 4)
In [100]:
final.head(3)
Out[100]:
Date/Time Lat Lon Base
0 9/1/2014 0:01:00 40.2201 -74.0021 B02512
1 9/1/2014 0:01:00 40.7500 -74.0027 B02512
2 9/1/2014 0:03:00 40.7559 -73.9864 B02512

4. What locations of NYC we are getting rush?¶

In [ ]:
 
In [102]:
rush_uber = final.groupby(['Lat', 'Lon'], as_index=False).size()
In [103]:
rush_uber.head(5)
Out[103]:
Lat Lon size
0 39.9897 -74.1423 1
1 40.0580 -74.0847 1
2 40.0794 -74.0456 1
3 40.0972 -74.0877 1
4 40.1122 -74.0480 1
In [104]:
!pip install folium
Collecting folium
  Downloading folium-0.14.0-py2.py3-none-any.whl (102 kB)
     -------------------------------------- 102.3/102.3 kB 2.0 MB/s eta 0:00:00
Requirement already satisfied: numpy in c:\users\lucas\anaconda3\lib\site-packages (from folium) (1.23.5)
Collecting branca>=0.6.0
  Downloading branca-0.6.0-py3-none-any.whl (24 kB)
Requirement already satisfied: requests in c:\users\lucas\anaconda3\lib\site-packages (from folium) (2.28.1)
Requirement already satisfied: jinja2>=2.9 in c:\users\lucas\anaconda3\lib\site-packages (from folium) (3.1.2)
Requirement already satisfied: MarkupSafe>=2.0 in c:\users\lucas\anaconda3\lib\site-packages (from jinja2>=2.9->folium) (2.1.1)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\users\lucas\anaconda3\lib\site-packages (from requests->folium) (1.26.14)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\lucas\anaconda3\lib\site-packages (from requests->folium) (2022.12.7)
Requirement already satisfied: idna<4,>=2.5 in c:\users\lucas\anaconda3\lib\site-packages (from requests->folium) (3.4)
Requirement already satisfied: charset-normalizer<3,>=2 in c:\users\lucas\anaconda3\lib\site-packages (from requests->folium) (2.0.4)
Installing collected packages: branca, folium
Successfully installed branca-0.6.0 folium-0.14.0
In [106]:
import folium
In [108]:
basemap = folium.Map()
In [109]:
basemap
Out[109]:
Make this Notebook Trusted to load map: File -> Trust Notebook
In [110]:
from folium.plugins import HeatMap
In [111]:
HeatMap(rush_uber).add_to(basemap)
Out[111]:
<folium.plugins.heat_map.HeatMap at 0x19d5dd885e0>
In [112]:
basemap
Out[112]:
Make this Notebook Trusted to load map: File -> Trust Notebook

5 Examine rush on hour adn weekday (permorm pair wis analysis)¶

In [113]:
final.columns
Out[113]:
Index(['Date/Time', 'Lat', 'Lon', 'Base'], dtype='object')
In [114]:
final.head(3)
Out[114]:
Date/Time Lat Lon Base
0 9/1/2014 0:01:00 40.2201 -74.0021 B02512
1 9/1/2014 0:01:00 40.7500 -74.0027 B02512
2 9/1/2014 0:03:00 40.7559 -73.9864 B02512
In [115]:
final.dtypes
Out[115]:
Date/Time     object
Lat          float64
Lon          float64
Base          object
dtype: object
In [116]:
final['Date/Time'][0]
Out[116]:
'9/1/2014 0:01:00'
In [117]:
final['Date/Time'] = pd.to_datetime(final['Date/Time'], format='%m/%d/%Y %H:%M:%S')
In [118]:
final['Date/Time'].dtype
Out[118]:
dtype('<M8[ns]')
In [121]:
final['day'] = final['Date/Time'].dt.day
final['hour'] =final['Date/Time'].dt.hour
In [122]:
final.head(3)
Out[122]:
Date/Time Lat Lon Base Day day hour
0 2014-09-01 00:01:00 40.2201 -74.0021 B02512 1 1 0
1 2014-09-01 00:01:00 40.7500 -74.0027 B02512 1 1 0
2 2014-09-01 00:03:00 40.7559 -73.9864 B02512 1 1 0
In [138]:
pivot_table = final.groupby(['day', 'hour']).size().unstack()
In [142]:
pivot_table.style.background_gradient()
Out[142]:
hour 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
day                                                
1 682.000000 480.000000 356.000000 329.000000 260.000000 278.000000 327.000000 416.000000 551.000000 748.000000 851.000000 967.000000 1001.000000 1102.000000 1199.000000 1324.000000 1452.000000 1319.000000 1234.000000 1229.000000 1157.000000 1027.000000 794.000000 498.000000
2 204.000000 108.000000 81.000000 288.000000 511.000000 843.000000 1241.000000 1565.000000 1689.000000 1229.000000 1132.000000 1110.000000 1170.000000 1256.000000 1375.000000 1677.000000 2009.000000 2099.000000 1920.000000 1725.000000 1732.000000 1485.000000 1106.000000 684.000000
3 278.000000 150.000000 113.000000 200.000000 351.000000 744.000000 1359.000000 1633.000000 1640.000000 1372.000000 1213.000000 1157.000000 1186.000000 1343.000000 1603.000000 1997.000000 2290.000000 2414.000000 2329.000000 2136.000000 2172.000000 1886.000000 1543.000000 898.000000
4 484.000000 263.000000 177.000000 244.000000 374.000000 744.000000 1336.000000 1707.000000 1770.000000 1428.000000 1363.000000 1369.000000 1385.000000 1510.000000 1828.000000 2285.000000 2441.000000 2674.000000 3012.000000 2740.000000 2568.000000 2388.000000 2033.000000 1384.000000
5 634.000000 359.000000 229.000000 298.000000 456.000000 806.000000 1302.000000 1677.000000 1824.000000 1578.000000 1456.000000 1399.000000 1415.000000 1675.000000 2020.000000 2279.000000 2601.000000 2899.000000 3087.000000 3099.000000 2683.000000 2727.000000 2702.000000 2252.000000
6 1664.000000 1092.000000 690.000000 466.000000 340.000000 337.000000 516.000000 696.000000 942.000000 1068.000000 1259.000000 1440.000000 1563.000000 1828.000000 2098.000000 2365.000000 2528.000000 2717.000000 2802.000000 2686.000000 2369.000000 2657.000000 2975.000000 2597.000000
7 1794.000000 1219.000000 805.000000 556.000000 328.000000 352.000000 382.000000 555.000000 801.000000 1006.000000 1207.000000 1356.000000 1459.000000 1604.000000 1764.000000 1944.000000 2091.000000 1995.000000 1865.000000 1662.000000 1574.000000 1410.000000 1135.000000 622.000000
8 321.000000 199.000000 155.000000 365.000000 508.000000 897.000000 1194.000000 1646.000000 1692.000000 1272.000000 1175.000000 1190.000000 1162.000000 1313.000000 1547.000000 1855.000000 2054.000000 2203.000000 2171.000000 1926.000000 1782.000000 1453.000000 1090.000000 583.000000
9 305.000000 192.000000 145.000000 239.000000 398.000000 807.000000 1410.000000 1745.000000 1751.000000 1305.000000 1263.000000 1258.000000 1287.000000 1600.000000 1986.000000 2191.000000 2195.000000 2559.000000 2618.000000 2329.000000 2130.000000 1875.000000 1393.000000 838.000000
10 421.000000 304.000000 177.000000 233.000000 392.000000 775.000000 1314.000000 1635.000000 1734.000000 1401.000000 1252.000000 1373.000000 1338.000000 1520.000000 1778.000000 2162.000000 2404.000000 2711.000000 2780.000000 2512.000000 2371.000000 2020.000000 1609.000000 884.000000
11 472.000000 289.000000 182.000000 274.000000 440.000000 317.000000 1015.000000 1518.000000 1698.000000 1369.000000 1220.000000 1301.000000 1306.000000 1538.000000 1860.000000 2144.000000 2526.000000 2779.000000 2837.000000 2662.000000 2491.000000 2372.000000 1774.000000 1195.000000
12 590.000000 382.000000 257.000000 324.000000 469.000000 797.000000 1245.000000 1622.000000 1698.000000 1352.000000 1324.000000 1247.000000 1286.000000 1516.000000 1681.000000 2017.000000 2276.000000 2629.000000 2849.000000 2829.000000 2490.000000 2650.000000 2715.000000 2362.000000
13 1772.000000 1184.000000 764.000000 517.000000 360.000000 400.000000 479.000000 648.000000 912.000000 1032.000000 1271.000000 1425.000000 1483.000000 1739.000000 2659.000000 2982.000000 2950.000000 2942.000000 3347.000000 3240.000000 2546.000000 2568.000000 2533.000000 2416.000000
14 1772.000000 1233.000000 855.000000 540.000000 360.000000 379.000000 405.000000 547.000000 748.000000 942.000000 1094.000000 1325.000000 1283.000000 1472.000000 1548.000000 1746.000000 1851.000000 1825.000000 1759.000000 1586.000000 1488.000000 1212.000000 990.000000 496.000000
15 251.000000 167.000000 151.000000 335.000000 554.000000 861.000000 1328.000000 1656.000000 1666.000000 1223.000000 1010.000000 1029.000000 1033.000000 1249.000000 1417.000000 1734.000000 2133.000000 2292.000000 2106.000000 1865.000000 1801.000000 1347.000000 995.000000 556.000000
16 264.000000 134.000000 123.000000 212.000000 367.000000 774.000000 1627.000000 2254.000000 2458.000000 1975.000000 1766.000000 1334.000000 1223.000000 1364.000000 1711.000000 2078.000000 2479.000000 2668.000000 2517.000000 2224.000000 2067.000000 1740.000000 1209.000000 639.000000
17 360.000000 200.000000 154.000000 253.000000 429.000000 758.000000 1515.000000 1915.000000 1632.000000 1248.000000 1206.000000 1166.000000 1279.000000 1515.000000 1728.000000 2103.000000 2468.000000 2687.000000 2683.000000 2454.000000 2413.000000 2114.000000 1572.000000 816.000000
18 401.000000 232.000000 158.000000 266.000000 443.000000 833.000000 1403.000000 1869.000000 1787.000000 1324.000000 1259.000000 1299.000000 1265.000000 1564.000000 1817.000000 2220.000000 2609.000000 3064.000000 3139.000000 3121.000000 2800.000000 2776.000000 2212.000000 1449.000000
19 641.000000 421.000000 261.000000 362.000000 460.000000 761.000000 1359.000000 1752.000000 1716.000000 1353.000000 1295.000000 1279.000000 1319.000000 1524.000000 1861.000000 2211.000000 2449.000000 2822.000000 3134.000000 2878.000000 2565.000000 2693.000000 2639.000000 2252.000000
20 1657.000000 1126.000000 703.000000 488.000000 379.000000 367.000000 538.000000 730.000000 886.000000 1089.000000 1231.000000 1387.000000 1482.000000 1619.000000 1910.000000 2087.000000 2374.000000 2581.000000 2595.000000 2587.000000 2387.000000 2461.000000 2590.000000 2539.000000
21 2393.000000 1976.000000 1141.000000 570.000000 372.000000 391.000000 423.000000 545.000000 708.000000 917.000000 1097.000000 1224.000000 1320.000000 1442.000000 1507.000000 1532.000000 1650.000000 1625.000000 1647.000000 1503.000000 1349.000000 1197.000000 917.000000 565.000000
22 270.000000 163.000000 146.000000 335.000000 533.000000 918.000000 1321.000000 1633.000000 1562.000000 1156.000000 1109.000000 1044.000000 1020.000000 1175.000000 1361.000000 1603.000000 1836.000000 1898.000000 1891.000000 1758.000000 1707.000000 1503.000000 1048.000000 638.000000
23 320.000000 171.000000 121.000000 222.000000 377.000000 826.000000 1387.000000 1703.000000 1449.000000 1168.000000 1050.000000 1031.000000 1005.000000 1173.000000 1437.000000 1680.000000 1882.000000 2132.000000 2282.000000 2215.000000 2020.000000 1814.000000 1373.000000 729.000000
24 404.000000 217.000000 140.000000 264.000000 415.000000 786.000000 1370.000000 1697.000000 1499.000000 1212.000000 1146.000000 1207.000000 1095.000000 1317.000000 1609.000000 1871.000000 2071.000000 2244.000000 2225.000000 1955.000000 1961.000000 1773.000000 1308.000000 733.000000
25 374.000000 226.000000 175.000000 282.000000 430.000000 795.000000 1688.000000 2494.000000 2240.000000 2070.000000 1702.000000 1637.000000 1541.000000 1588.000000 1729.000000 2015.000000 2348.000000 2508.000000 2449.000000 2176.000000 1993.000000 2049.000000 1686.000000 1023.000000
26 590.000000 340.000000 234.000000 333.000000 394.000000 665.000000 1139.000000 1484.000000 1305.000000 1202.000000 1154.000000 1176.000000 1228.000000 1377.000000 1690.000000 1990.000000 2243.000000 2561.000000 2943.000000 2715.000000 2383.000000 2618.000000 2480.000000 2294.000000
27 1654.000000 1197.000000 736.000000 514.000000 355.000000 412.000000 514.000000 664.000000 852.000000 1070.000000 1242.000000 1412.000000 1432.000000 1662.000000 1832.000000 2167.000000 2368.000000 2478.000000 2704.000000 2602.000000 2302.000000 2776.000000 2846.000000 2633.000000
28 2032.000000 1382.000000 954.000000 640.000000 410.000000 471.000000 435.000000 575.000000 786.000000 971.000000 1195.000000 1456.000000 1440.000000 1558.000000 1710.000000 1784.000000 1879.000000 1766.000000 1744.000000 1523.000000 1384.000000 1228.000000 991.000000 610.000000
29 318.000000 170.000000 147.000000 373.000000 564.000000 856.000000 1364.000000 1716.000000 1646.000000 1368.000000 1090.000000 1107.000000 1058.000000 1269.000000 1445.000000 1654.000000 1833.000000 1914.000000 2012.000000 1749.000000 1689.000000 1468.000000 1074.000000 594.000000
30 285.000000 161.000000 125.000000 227.000000 404.000000 849.000000 1548.000000 1975.000000 1811.000000 1248.000000 1158.000000 1187.000000 1140.000000 1496.000000 1661.000000 2071.000000 2315.000000 2611.000000 2554.000000 2347.000000 2190.000000 1913.000000 1317.000000 nan
In [ ]:
 
In [ ]: